package com.jmxcfc.blfsc.ninefour.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jmxcfc.fs.common.entity.AutoFillEntity;
import lombok.Data;

import java.io.Serializable;

/**
 * <p>
 * 94语音回调记录表
 * </p>
 *
 * @author pbs
 * @since 2024-06-24
 */
@Data
@TableName("NF_VOICE_NOTIFY_RECORD")
public class VoiceNotifyRecord extends AutoFillEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键Id
     */
    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    private String id;


    /**
     * 业务ID(短信业务号,非94回调传值字段)
     */
    private String requestNo;


    /**
     * 请求ID(一个批次的请求ID,接口请求参数requestId)
     */
    private String requestId;

    /**
     * 用户自定义标签,UUID(标识一条短信的流水号uuid,和JMX关联记录的字段)
     */
    private String tag;

    /**
     * 呼叫手机号码(对应回调参数number字段)
     */
    private String cellPhoneNo;

    /**
     * 批次号(导入号码时返回的批次号
)
     */
    private String batchId;

    /**
     * 外呼类型(1001:坐席-人工外呼、1002:坐席-AI外呼-不转人工、1003:坐席-AI外呼-接通转人工、1004:坐席-AI外呼-智能转人工、2001:批量-预测外呼、2002:批量-AI外呼-不转人工、2003:批量-AI外呼-接通转人工、2004: 批量-AI外呼-智能转人工、2005:批量-语音通知)
     */
    private String callType;

    /**
     * 外呼ID
     */
    private String callId;

    /**
     * 任务ID(决策系统中的任务编号,若外呼类型为坐席主动外呼,则此处返回坐席ID)

     */
    private String taskId;

    /**
     * AI话术ID(外呼的话术模板ID,可以为空)
     */
    private String templateId;

    /**
     * 外呼状态编码,根据这个字段判断是否外呼成功(1:已接听、2:关机、3:空号、4:改号、5:停机、6:占线、7:拒接、8:无法接通、9:未接、10:用户欠费、11:线路故障、12:呼叫失败、30:已拦截、40:单日呼叫次数受限)
     */
    private String statusCode;

    /**
     * 外呼状态描述
     */
    private String statusDescription;

    /**
     * 转人工状态编码,如1、2,可以为空(0:未触发、1:分配坐席失败、2:无空闲坐席分配、10:振铃未接听、11:振铃占线、12:振铃话机离线、13:振铃失败、14:监听失败、20:监听未接听、30:已接听、31:接听失败)
     */
    private String transferStatusCode;

    /**
     * 转人工状态,描述(转人工状态编码与状态对应:0:未触发、1:分配坐席失败、2:无空闲坐席分配、10:振铃未接听、11:振铃占线、12:振铃话机离线、13:振铃失败、14:监听失败、20:监听未接听、30:已接听、31:接听失败)
     */
    private String transferStatus;

    /**
     * 分配坐席ID
     */
    private String agentId;

    /**
     * 坐席标签
     */
    private String agentTag;

    /**
     * 坐席分机号
     */
    private String agentExtension;

    /**
     * 导入时间(格式:yyyy-MM-dd HH:mm:ss)
     */
    private String importTime;

    /**
     * 开始拨号时间(格式:yyyy-MM-dd HH:mm:ss)
     */
    private String callBeginTime;

    /**
     * 振铃时长(单位毫秒)
     */
    private Integer ringTime;

    /**
     * 接通时间(格式:yyyy-MM-dd HH:mm:ss)
     */
    private String answerTime;

    /**
     * AI通话时长(单位:大于1分钟,显示分钟秒,小于1分钟,显示秒)
     */
    private String speakingTime;

    /**
     * AI通话时长(秒)
     */
    private Integer speakingDuration;

    /**
     * 通话挂断时间(格式:yyyy-MM-dd HH:mm:ss)
     */
    private String hangupTime;

    /**
     * 对话轮次
     */
    private String speakingTurns;

    /**
     * 人工通话时长(单位:大于1分钟,显示分钟秒,小于1分钟,显示秒)
     */
    private String agentSpeakingTime;

    /**
     * 人工通话时长(秒)
     */
    private Integer agentSpeakingDuration;

    /**
     * 意向标签
     */
    private String intentTag;

    /**
     * 意向说明
     */
    private String intentDescription;

    /**
     * 个性标签
     */
    private String individualTag;

    /**
     * 回复关键词
     */
    private String keyWords;

    /**
     * 挂机方式(AI挂机:1、坐席挂机:2、客户挂机:3)
     */
    private String hangupType;

    /**
     * 挂机短信(1、21:发送、2:不发送)
     */
    private String sms;

    /**
     * 对话录音(URL)
     */
    private String chatRecord;

    /**
     * 加微(0、10:不添加;1:添加)
     */
    private String addWx;

    /**
     * 加微进度(已申请、加微成功
)
     */
    private String addWxStatus;

    /**
     * 是否接通重呼(0、10正常外呼;1接通重呼
)
     */
    private String answerRecall;

    /**
     * 拦截原因(当状态为已拦截时,可选值:黑名单拦截、灰名单拦截、异常号码拦截)
     */
    private String interceptReason;

    /**
     * 企业id
     */
    private String companyId;

    /**
     * sip编码(线路返回的sip编码code)
     */
    private String sipCode;

    /**
     * 转接人工时间(格式:yyyy-MM-dd HH:mm:ss)
     */
    private String transferTime;


}
